// ChessPlayer.h
//
// Created By: Jeremy Butler
// Created On: 23-Mar-2011
//
// An implementation of the IChessPlayer interface.

#ifndef CHESS_PLAYER_H
#define CHESS_PLAYER_H

#include "IChessPlayer.h"
#include "Piece.h"
#include "Game.h"
#include "IChessView.h"
using namespace std;

class ChessPlayer : public I_ChessPlayer{
protected:
  Color color;
  
public:
  //! @brief No-Arg Constructor
  ChessPlayer();

  //! @brief Constructor
  ChessPlayer(Color _color);

  //! @brief Copy Constructor
  //! @param other the ChessPlayer to copy
  ChessPlayer(const ChessPlayer & other);

  //! @brief Operator = used to copy another ChessPlayer to this one.
  //! @param other The ChessPlayer to be copied.
  //! @return a reference to the newly copied ChessPlayer.
  ChessPlayer & operator = (const ChessPlayer & other);

  //! @brief Destructor
  virtual ~ChessPlayer();

  // Start Interface function implementations
  virtual void on_CellSelected(int row, int col, int button);
  virtual void on_TimerEvent();
  // End Interface function implementations

  Color GetColor() const;
};

#endif /* CHESS_PLAYER_H */
